home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Users Group Library 1996 July
/
C-C++ Users Group Library July 1996.iso
/
listings
/
v_09_03
/
9n03064a
< prev
next >
Wrap
Text File
|
1991-01-15
|
2KB
|
55 lines
/* Modulename: io.c
*
* Description: This module contains routines
* for the serial I/O interface and
* timers of the 8052.
* Compiler option : -C51
*/
#ifndef _CC51
#include "reg51.h"
#endif
#include "clock.h"
/* function prototypes */
void out_char( char );
void reset_serial( void );
void init_timer( void );
void
out_char( char c )
{
while ( !TI ) /* Output port ready? */
; /* No: keep looping */
TI = 0; /* Reset flag */
SBUF = c; /* Put character */
}
void
reset_serial( void )
{
RI = 0; /* clear receive and transmit
interrupt flag */
TI = 0;
TH1 = 0xFD; /* Initialize serial port: */
SCON = 0xDA; /* 9600 baud, 8 bits */
/* no parity, 1 start bit, */
/* 2 stop bits */
/* Cristal frequency: 11.0592 Mhz. */
}
void
init_timer( void )
{
TR1 = 1; /* set timer 1 in run mode */
TMOD = 0x21; /* timer 1 in 8 bit auto reload mode,*/
/* timer 0 in 16 bit timer mode */
TL0 = ( TIME_FACTOR % 256 );
TH0 = ( TIME_FACTOR / 256 );
PT0 = 1; /* timer 0 at interrupt priority level 0 */
ET0 = 1; /* enable timer 0 overflow interrupt */
EA = 1; /* enable all interrupts */
TR0 = 1; /* set timer 0 in run mode */
}